#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>

int main()
{
    int fd;
    char buffer[128];
    const char *msg = "i like linux!";

    // 打开文件 不存在则创建
    fd = open("./bite", O_WRONLY | O_CREAT, 0666);
    if (fd == -1)
    {
        perror("Error opening file");
        exit(1);
    }

    // 写内容到文件
    if (write(fd, msg, strlen(msg)) == -1)
    {
        perror("Error writing to file");
        close(fd);
        exit(1);
    }

    // 关闭文件描述符
    close(fd);

    // 重新打开文件以读取
    fd = open("bite", O_RDONLY);
    if (fd == -1)
    {
        perror("Error opening file for reading");
        exit(1);
    }

    // 将文件指针重置到文件开始 off_t lseek(int __fd, off_t __offset, int __whence
    lseek(fd, 0, SEEK_SET);

    // 从文件中读取内容
    if (read(fd, buffer, sizeof(buffer)) == -1)
    {
        perror("Error reading from file");
        close(fd);
        exit(1);
    }

    printf("File msg: %s\n", buffer);

    // 关闭文件描述符
    close(fd);

    return 0;
}